/**
* Mule Coupa Cloud Connector
*
* Copyright (c) MuleSoft, Inc. All rights reserved. http://www.mulesoft.com
*
* The software in this package is published under the terms of the CPAL v1.0
* license, a copy of which has been included with this distribution in the
* LICENSE.txt file.
*
* Coupa Connector com.coupa package contains portions of code based on Coupa4j
* http://code.google.com/p/coupa4j/, under a MIT license:
* http://www.opensource.org/licenses/mit-license.php.
*/
package org.mule.modules.coupa;
import static org.junit.Assert.*;
import static org.mockito.Matchers.*;
import static org.mockito.Mockito.*;
import java.math.BigInteger;
import java.util.HashMap;
import javax.ws.rs.core.MultivaluedMap;
import net.sf.staccatocommons.collections.stream.Streams;
import org.junit.Before;
import org.junit.Test;
import com.coupa.api.Client;
import com.coupa.resources.Account;
import com.coupa.resources.Currency;
import com.coupa.resources.Resource;
import com.coupa.resources.Resources;
/**
* Test for {@link CoupaModule}
*
* @author flbulgarelli
*/
public class CoupaModuleUnitTest
{
private CoupaModule coupaModule;
private Client coupaClientMock;
@Before
public void setUp()
{
coupaModule = new CoupaModule();
coupaClientMock = mock(Client.class);
coupaModule.setCoupaClient(coupaClientMock);
coupaModule.init();
}
/**Test for */
@Test
public void testSave() throws Exception
{
Account value = new Account();
value.setId(i(1));
when(coupaClientMock.post(anyString(), any(), eq(Account.class))).thenReturn(value);
Resource result = coupaModule.save(ResourceType.Account, new HashMap<String, Object>() { {
put("name", "MyAccount");
put("code", "XSDF44");
} });
assertNotNull(result);
assertNotNull(result.getId());
}
@Test
public void testFind() throws Exception
{
Resources resources = new Resources();
resources.getResources().add(new Currency());
when(coupaClientMock.get(anyString(), any(MultivaluedMap.class), eq(Resources.class))).thenReturn(resources);
Iterable<Resource> results = coupaModule.find(ResourceType.Currency,
new HashMap<String, String>(), false, 0, null);
assertNotNull(results);
assertEquals(1, Streams.from(results).size());
}
private BigInteger i(int i)
{
return BigInteger.valueOf(i);
}
}